Computer code is traditionally written in a human-readable language such as C and Java. The human-readable language is a high-level language that it is abstracted from the details of code execution necessary to have a machine implement the code. Machines execute instructions that are in a low-level language, such as assembly language. A compiler translates code written in a high-level language to a low-level language so that it may be executed by the machine. Some compilers translate code written in a first low-level language to a second low-level language. Such compilers may be referred to as binary translators. Different machines having different architectures execute low-level languages having different instruction sets. For example, instructions for a machine having an x86 processor architecture may be different than instructions for a machine having an x64 processor architecture.
The figures are not to scale. Wherever possible, the same reference numbers will be used throughout the drawing(s) and accompanying written description to refer to the same or like parts.